In overview, Hypertext Transfer Protocol (HTTP) is widely used for implementing the contemporary Internet. The Protocol is an application protocol for distributed, collaborative hypermedia information systems. In implementation, HTTP is a multi-linear set of objects which are operable to build a network using logical links to define the network. The links are often referred to as being “hyperlinks” which define a network relationship between nodes.
HTTP is operable to function as a request-response protocol, for example in a client-serving model as implemented for the Internet. In the model, a web browser is optionally used to implement a client, and a software application executing upon a server may host a web site. In operation, a given client submits a HTTP request message to the server, which responds by providing resources such as HTML files and other content, or performs data processing functions on behalf of the client, or even returns a response message to the client. The aforesaid web browser is susceptible to being implemented in various ways, for example as a user agent, as a web crawler or any other software executable upon computing hardware that accesses, consumes or displays Internet-derived data content.
HTTP is designed to permit immediate network elements to enable communications between clients and servers. High-traffic web-sites of the Internet often employ web cache servers that are operable to deliver content on behalf of upstream servers to improve response times for data and/or service delivery. Moreover, HTTP proxy servers at private network boundaries are beneficially used to facilitate communication for clients without a globally routable Internet address, namely by relaying messages via external servers.
HTTP resources are identified and located on a given network by using Uniform Resource Identifiers (URI's), also referred to as Uniform Resource Locators (URL's). Moreover, URI's and hyperlinks are expressed in Hypertext Markup Language (HTML) that is capable of forming webs of mutually interlinked hypertext documents.
An HTTP session is implemented by way of a sequence of network request-response transactions. For example, an HTTP client initiates a request by establishing a Transmission Control Protocol (TCP) connection to a particular port on a server. An HTTP server listens for the client's request message and responds by sending back a status line, for example “HTTP/1.1 200 OK” together with an associated message. A body of this associated message is often the requested resource, although an error message may alternatively be returned.
HTTP defines methods, conveniently referred to as “verbs”, for indicating a desired action to be performed in respect of an identified resource. The resource is, for example, a data file or an output from an executable object residing on one or more servers. Examples of HTTP methods, also known as HTTP “verbs”, are provided in Table 1.
TABLE 1HTTP methods (HTTP “verbs”)“Verb”DetailsGETRequests a representation of a specified resource, whereinrequests using “GET” should only retrieve dataHEADRequests a response which is identical to that obtainablefrom GET, but devoid of any response body; “HEAD”is often employed for retrieving meta-data in an efficientmannerPOSTRequests that a given server accepts an entity enclosed inthe request as a new sub-ordinate of a given web resourceidentified by a URLPUTRequests that an enclosed entity be stored in respect of asupplied URI (URL). If the URI refers to an alreadyexisting resource, that resource is modified.DELETERequests deletion of a specified resourceTRACEResults in a received request to be echoed back to the givenclientOPTIONSReturns HTTP methods supported by a server associatedwith a given URLCONNECTConverts a requested connection to a transparent TCP/IPtunnel, for example for facilitating TLS and SSL-encrypted communication (HTTPs) through an unencryptedHTTP proxy as aforementioned; by default, an HTTPconnection is unencrypted, whereas an HTTPS connectionis encrypted.PATCHRequests application of partial modifications to a givenresource
Thus, a principal transfer protocol employed by contemporary web browsers is HTTP; several associated “ecosystems”, and software that they utilize, in particular browser software applications, are not able to function without using HTTP. As stated, HTTP is based upon requests (see Table 1) that are transmitted and, on response to these requests, HTML pages or binary data such as images or audio streams/files are commonly served in response to receiving the requests.
On account of the complexity of the Internet, Internet communication delays, namely “latency”, can arise in operation. Such delays can cause problems in demanding data exchange situations, for example when two-way (full-duplex) communication is desired, where real-time response is desired, for example transfer and reception of video images and/or audio with very little delay. Bi-directional communication via the Internet is known from Voice-over-Internet-Protocol (VoIP) and also from Internet-based video conferencing, for example, as contemporarily provided using Skype software. “Skype” is a registered trademark of Skype Limited Corporation of Dublin, Ireland.
It is known to employ protocols known as “WebSockets”, as described at a web-site http://tools.ietf.org/html/rfc6455, for addressing specific types of communication needs. The following communication properties are thereby capable of being achieved:    (i) a WebSocket is employed inside an HTTP/HTTPS tunnel; in such a case, firewalls have already been opened for ports 80/443, because they are contemporarily commonly utilized on web browsers; and    (ii) a WebSocket is utilized in a full-duplex connection mode, wherein only one TCP connection is able to communicate both ways in real-time, namely it is able to transmit and receive data with one connection by changing the direction of data delivery.
However, such WebSockets can be port-dependent which represents an undesirable limitation.